const db=wx.cloud.database();
const command = db.command;
Component({
  options : {
    multipleSolts :true //定义组件支持多solts
  },
  /*
   * 组件的属性列表 
   */
  properties : {
    //提示语
     hint : {
      type : String,
      value : "添加图片"
    } ,
    // 添加图片按钮的icon
    hint_icon : {
      type : String,
      value : "iconfont icon-xiangji"
    },
    // 添加图片的按钮的icon的大小
    icon_size : {
      type : String,
      value: "100rpx"
    },
    // 添加图片的按钮的颜色
    icon_color : {
      type : String,
      value : "#2C2C2C"
    },
    //提示块的背景颜色
    hint_background : {
      type : String ,
      value: "#E5E5E5"
    },
    //每块的高 高宽比默认1:1
    hint_height : {
      type : String,
      value : "160rpx"
    },
    //每块的宽 高宽比默认1:1
    hint_width : {
      type : String,
      value : "160rpx"
    },
    //整体背景颜色
    background : {
      type : String,
      value: "#FFFFFF"
    },
    //图片剪裁mode
    mode : {
      type : String,
      value: "aspectFill"
    },
    // 从页面传递过来的新闻标题
    news_title : {
      type : String,
    },
    // 从页面传递过来的新闻详情
    news_desc : {
      type : String,
    },
    // 从页面传递过来的临时图片地址
    get_picaddress : {
      type : Array,
    },
    // 从页面传递过来的当前登录工人的名字
    usernickname:{
      type : String,
    },
    // 从页面传递过来的修改的新闻的docid
    docid:{
      type : String,
    },
    // 旧的新闻标题
    oldtitle:{
      type:String
    },
    // 旧的新闻内容
    olddesc:{
      type:String
    },

  },
  //内部数据
  data : {
    image: [],
  },
  //组件方法列表
  methods : {

    // 上传图片
    chooseImage:  function () {
      var that = this;
      wx.chooseImage({
        count: 9,
        sizeType: ['original', 'compressed'],
        sourceType: ['album', 'camera'],
        success: function (res) {
          var tempFilePaths = res.tempFilePaths;//用户选择的图片的本地路径列表
          var length = tempFilePaths.length//用户选了几张
          //将路径循环push入image数组中
          var i = 0
          while (length) {
            var obj = {}
            obj.imageHide = ""
            obj.imageAddress = tempFilePaths[i]
            that.data.image.push(obj)
            length--
            i++
          }
          //使body自适应图片的增加
          var l = that.data.image.length
          if (l >= 3) {
            var b = parseInt(l / 3)
            that.setData({
              bodyStyle: "height:" + (328 + b * 90) + "px"
            })
          }
          //重新渲染image视图
          that.setData({
            image: that.data.image
          })
        },
        fail: function () {

        },
      })
      this.triggerEvent('getpicsrc',this.data.image)
      // console.log(this.data.image);
    },
    // 删除图片
    removeImage: function (event) {
      //删除相应的数组元素
      this.data.image.splice(event.currentTarget.id, 1)
      //重新渲染视图
      this.setData({
        image: this.data.image
      })
      this.triggerEvent('getpicsrc',this.data.image)
      // console.log(this.data.image);
    },

    // 移除旧的图片,并得到存有新照片的数组
    removeoldImage:function(event){
      var news_doc = this.data.docid;
      // 点击叉叉的图片的下标，从0开始
      console.log("点击的旧图片的下标",event.currentTarget.id);
      // 拿到存图片的数组
      var new_picaddress = this.data.get_picaddress;
      // 拿到要删除的图片的地址
      var delpic_address = new_picaddress[event.currentTarget.id];
      // console.log(new_picaddress[event.currentTarget.id]);

      wx.showModal({
        title: '提示',
        content: '确认删除这张图片么',
      }).then(res=>{ //如果用户点击确定
        if(res.confirm){
          new_picaddress.splice(event.currentTarget.id, 1)
          //重新渲染视图
          console.log("更改旧图片以后的数组",new_picaddress);
          // 删除在云函数存储的文件
          wx.cloud.deleteFile({
            fileList:[delpic_address]
          }).then(res=>{
            var del_desc = res.fileList[0].fileID
            console.log("刚刚删除的文件的地址是：",res.fileList[0].fileID);
            this.setData({
              get_picaddress: new_picaddress
            })
            // 更新数据库中的字段
            wx.cloud.callFunction({
              name:'update',
              data:{
                options:'delpic',
                docid:news_doc,
                filepath:res.fileList[0].fileID
              }
            }).then(res=>{
              console.log(res);
            })
            




          })
        }else if(res.cancel){  //如果用户点击取消
          console.log("用户点击取消");
        }
      })
    },

    // 按钮上传所有数据
    upload: async function(){
      var oldtitle = this.data.oldtitle;
      var olddesc = this.data.olddesc;
      var docid = this.data.docid;
      var pic = this.data.image;
      var usernickname = this.data.usernickname;
      var news_title = this.data.news_title;
      var news_desc = this.data.news_desc;
      // 这个是时间戳
      var timestamp = Date.parse(new Date()) /1000;  
      // 这个直接是本地字符串时间格式
      if(this.data.news_title == ''){
        this.data.news_title = this.data.oldtitle
      }else if(this.data.news_desc == ''){
        this.data.news_desc = this.data.olddesc
      }else{
        // console.log(contactpic);
        wx.showModal({
            title: '提示',
            content: '是否确认提交',
            success (res) {
              var uploaded_img = [];
              if (res.confirm) {
                console.log('用户点击确定')
                wx.showLoading({
                title: '提交中',
                mask:true,
                })
                function useCloudStorage(num) {
                  console.log(pic[num].imageAddress);
                  const tempFilePaths = pic[num].imageAddress;
                  return wx.cloud.uploadFile({
                    cloudPath:'newspic/'+(new Date()).valueOf()+'_'+num+'.png', // 文件名
                    filePath:tempFilePaths
                  }).then(res=>{
                    uploaded_img.push(res.fileID)
                    console.log(uploaded_img);
                  })
                }
                for(let num = 0;num<pic.length;num++){
                }
                const promiseArr = [];
                for (let num = 0;num<pic.length;num++) {
                  promiseArr.push(useCloudStorage(num));
                }
                Promise.all(promiseArr).then(() => {
                  useDB();
                });
                function useDB() {
                  // 隐藏加载中圈圈
                  wx.hideLoading()
                  // 显示提交成功
                  wx.showToast({
                  title: '提交成功',
                  icon:"success",
                  mask:true,
                  duration:2000,
                  });
                  // 拿到所有数据以后上传到数据库
                  return wx.cloud.callFunction({
                    name:'addpicdata',
                    data:{
                      docid,
                      pic:uploaded_img,
                      news_title,
                      news_desc,
                      oldtitle,
                      olddesc,
                    },
                    success:function(res){
                      console.log("添加数据库成功",res);
                      console.log("开始传送");
                      wx.reLaunch({
                        url: '../../pages/admin_news/admin_news',
                      })
                    },
                    fail:function(res){
                      console.log("添加数据库失败",res);
                    }
                  })



                  // return db.collection('news').doc('doc').update({
                  //   data: {
                  //     pics: command.push([uploaded_img])
                  //   },
                  //   success:function(res){
                  //     console.log("添加数据库成功",res);
                  //     console.log("开始传送");
                  //     wx.reLaunch({
                  //       url: '../../pages/admin_news/admin_news',
                  //     })
                  //   },
                  //   fail:function(res){
                  //     console.log("添加数据库失败",res);
                  //   }
                  // })



                  // return db.collection("news").add({
                  //   data:{
                  //     author:usernickname,
                  //     desc:news_desc,
                  //     title:news_title,
                  //     pics:uploaded_img,
                  //     time:posttime,
                  //     read:"0",
                  //   },
                  //   success:function(res){
                  //     console.log("添加数据库成功",res);
                  //     console.log("开始传送");
                  //     wx.reLaunch({
                  //       url: '../../pages/admin_news/admin_news',
                  //     })
                  //   },
                  //   fail:function(res){
                  //     console.log("添加数据库失败",res);
                  //   }
                  // })
                }
              } 
              else if (res.cancel) {
                console.log('用户点击取消')
              }
            }
          })
       



      }
     
    },
  },


})